// let str = 'zhangsanwangwuzhaosi';
/* for(let i = 0; i < str.length; i++) {
    let char = str[i];
    console.log(char);
} */

/* 
 * charAt: 根据索引获取指定位置的字符
 * charCodeAt: 获取指定字符ASCII码值(Unicode编码值)
 * @params
 *     n [number] 获取字符指定的索引
 * @return
 *     返回查找到的字符
 *     找不到返回的是空字符串不是undefined, 或者对应的编码值
*/

/* let str = 'zhangsanwangwuzhaosi';
console.log(str.charAt(0)); // 'z'
console.log(str.charCodeAt(0)); // 122
console.log(String.fromCharCode(122)) // 'z' */

/* 
 * 都是为了实现字符串的截取(在原来字符串中查找到自己想要的)
 * substr(n, m): 从索引n开始截取m个字符, m不写是截取到末尾(后面方法也是)
 * substring(n, m): 从索引n开始找到索引m处(不包含m)
 * slice(n, m): 和substring一样, 都是找到索引m处, 但是slice可以支持负数作为索引, 其余两个方法是不可以的
*/
/* let str = 'zhangsanwangwuzhaosi';
console.log(str.substr(3, 7));
console.log(str.substring(3, 7));
console.log(str.substr(3)); // 截取到末尾
console.log(str.substring(3)); // 截取到末尾
console.log(str.substring(3, 1000)); // 截取到末尾(超过索引的也只是截取到末尾)

console.log(str.substring(3, 7));
console.log(str.slice(3, 7));
console.log(str.substring(-7, -3)); // '' substring不支持负数索引
console.log(str.slice(-7, -3)); // 'uzha' slice支持负数索引 快捷查找: 负数索引, 我们可以按照 str.length+负索引的方式找 */

/* 
 * 验证字符是否存在
 * indexOf(x, y): 获取x第一次出现位置的索引, y是控制查找的起始位置索引
 * lastIndexOf(x): 最后一次出现位置的索引
 * 没有这个字符, 返回的结果是 -1
*/
/* let str = 'zhangsanwangwuzhaosi';
console.log(str.indexOf('a')); // 2
console.log(str.lastIndexOf('a')); // 16
console.log(str.indexOf('@')); // -1 不存在返回-1
if(str.indexOf('@') === -1) {
    // 字符串中不包含@这个字符
}

console.log(str.indexOf('san')); //5 验证整体第一次出现的位置, 返回的索引是第一个字符所在位置的索引
console.log(str.indexOf('say')); // -1

console.log(str.indexOf('a', 7)); // 9 查找字符串索引7及之后的字符串中, a第一次出现的位置索引

if(!str.includes('@')) {
    console.log("当前字符串不包含'@'");
} */


/* 
 * 字符串中字母的大小写转换
 * toUpperCase(): 转大写
 * toLowerCase(): 转小写
*/
/* let str = 'zhangsanwangwuzhaosi';
console.log(str.toUpperCase());
console.log(str.toLowerCase());

str = str.substr(0, 1).toUpperCase() + str.substr(1);
console.log(str); // 'Zhangsanwangwuzhaosi' 首字符大写 */

/* 
 * split([分隔符]): 把字符串按照指定的分隔符拆分称数组(和数组中的join相对应)
 * split支持传递正在表达式
*/
// 需求: 把|分隔符变为,分隔符
/* let str = 'music|movie|eat|sport';
let ary = str.split('|');
str = ary.join();
console.log(str); */

/* 
 * replace(老字符, 新字符): 实现字符串的替换(经常伴随着正则而用)
*/
let str = '黑马@培训@张三@王五';
str = str.replace('@', '-');
console.log(str); // '黑马-培训@张三@王五' 在不使用正则表达式的情况下, 执行一次replace只能替换一次字符

str = str.replace(/@/g, '-'); // 黑马-培训-张三-王五
console.log(str);